<?php
/* -------------------------------------------------------------------------------------
* 	ID:						$Id: preisroboter.php 11 2013-09-21 11:43:11Z phone.mueller@googlemail.com $
* 	Letzter Stand:			$Revision: 11 $
* 	zuletzt geaendert von:	$Author: siekiera $
* 	Datum:					$Date: 2013-09-21 11:43:11 +0000 (Sat, 21 Sep 2013) $
*
* 	SEO:mercari by Siekiera Media
* 	http://www.seo-mercari.de
*
* 	Copyright (c) since 2011 SEO:mercari
* --------------------------------------------------------------------------------------
* 	based on:
* 	(c) 2000-2001 The Exchange Project  (earlier name of osCommerce)
* 	(c) 2002-2003 osCommerce - www.oscommerce.com
* 	(c) 2003     nextcommerce - www.nextcommerce.org
* 	(c) 2005     xt:Commerce - www.xt-commerce.com
*
* 	Released under the GNU General Public License
* ----------------------------------------------------------------------------------- */

defined( '_VALID_XTC' ) or die( 'Direct Access to this location is not allowed.' );

define('MODULE_PREISROBOTER_TEXT_DESCRIPTION', 'Export - preisroboter.de (| getrennt)<br /><b>Format:</b><br />Artikelnummer|Artikelname|Kurzbeschreibung|Preis|Bild-URL|Deeplink|Lieferzeit|Versandkostenfrei');
define('MODULE_PREISROBOTER_TEXT_TITLE', 'PreisRoboter.de - CSV');
define('MODULE_PREISROBOTER_FILE_TITLE' , '<hr />Dateiname');
define('MODULE_PREISROBOTER_FILE_DESC' , 'Geben Sie einen Dateinamen ein, falls die Exportadatei am Server gespeichert werden soll.<br />(Verzeichnis export/)');
define('MODULE_PREISROBOTER_STATUS_DESC','Modulstatus');
define('MODULE_PREISROBOTER_STATUS_TITLE','Status');
define('MODULE_PREISROBOTER_CURRENCY_TITLE','W&auml;hrung');
define('MODULE_PREISROBOTER_CURRENCY_DESC','Welche WР вЂњР’В¤hrung soll exportiert werden?');
define('EXPORT_YES','Nur Herunterladen');
define('EXPORT_NO','Am Server Speichern');
define('CURRENCY','<hr /><b>W&auml;hrung:</b>');
define('CURRENCY_DESC','W&auml;hrung in der Exportdatei');
define('EXPORT','Bitte den Sicherungsprozess AUF KEINEN FALL unterbrechen. Dieser kann einige Minuten in Anspruch nehmen.');
define('EXPORT_TYPE','<hr /><b>Speicherart:</b>');
define('EXPORT_STATUS_TYPE','<hr /><b>Kundengruppe:</b>');
define('EXPORT_STATUS','Bitte wР вЂњР’В¤hlen Sie die Kundengruppe, die Basis f&uuml;r den Exportierten Preis bildet. (Falls Sie keine Kundengruppenpreise haben, w&auml;hlen Sie <i>Gast</i>):</b>');
define('DATE_FORMAT_EXPORT', '%d.%m.%Y'); // this is used for strftime()
define('VERSANDKOSTENFREI_AB', 999999999);

class preisroboter {
	var $code, $title, $description, $enabled, $db;

	function __construct() {
		global $order, $db;

		$this->code = 'preisroboter';
		$this->img = 'images/export/preisroboter.gif';
		$this->title = MODULE_PREISROBOTER_TEXT_TITLE;
		$this->description = MODULE_PREISROBOTER_TEXT_DESCRIPTION;
		$this->sort_order = MODULE_PREISROBOTER_SORT_ORDER;
		$this->enabled = ((MODULE_PREISROBOTER_STATUS == 'True') ? true : false);
		$this->db = $db;
	}


	function process($file) {
        // Load bluegate SEO Class
        if(MODULE_SEO_URL_INDEX_STATUS == 'True') {
			require_once (DIR_FS_INC.'inc.seo_url.php');
			!$SeoUrl ? $SeoUrl = new SeoUrl() : false;
		}

		@set_time_limit(0);
		require(DIR_FS_CATALOG.DIR_WS_CLASSES.'class.price.php');
		$price = new price($_POST['currencies'], $_POST['status'], $this->db);

		$products = $this->db->db_query("SELECT
											p.products_id,
											pd.products_name,
											pd.products_description,
											p.products_model,
											p.products_image,
											p.products_price,
											p.products_status,
											p.products_date_available,
											p.products_shippingtime,
											p.products_discount_allowed,
											pd.products_meta_keywords,
											p.products_tax_class_id,
											p.products_date_added,
											m.brand_name
											FROM
											".TABLE_PRODUCTS." p LEFT JOIN
											".TABLE_BRAND." m
											ON p.brand_id = m.brand_id LEFT JOIN
											".TABLE_PRODUCTS_DESCRIPTION." pd
											ON p.products_id = pd.products_id AND
											pd.language_id = '".$_SESSION['languages_id']."' LEFT JOIN
											".TABLE_SPECIALS." s
											ON p.products_id = s.products_id
											WHERE
											p.products_status = 1
											ORDER BY
											p.products_date_added DESC,
											pd.products_name");


		while(!$products->EOF) {

			$products_price = $price->GetPrice($products->fields['products_id'], false, 1, $products->fields['products_tax_class_id']);

			$products_description = strip_tags($products->fields['products_description']);
			$products_description = (strlen($products_description)> 150)?substr($products_description,0,145).' ...':$products_description;
			$products_description = str_replace("|",", ",$products_description);
			$products_description = str_replace("\n"," ",$products_description);
			$products_description = str_replace("\r"," ",$products_description);
			$products_description = str_replace("\t"," ",$products_description);
			$products_description = str_replace("\v"," ",$products_description);
			$products_description = str_replace("&quot,"," \"",$products_description);
			$products_description = str_replace("&qout,"," \"",$products_description);


			$productURL = $SeoUrl->getProductLink(product_link($products->fields['products_id'], $products->fields['products_name']), $connection, $_SESSION['languages_id']);
			if ($_POST['campaign']<>'') {
				$productURL.='?'.$_POST['campaign'];
			}

			//create content
			$schema .=
			$products->fields['products_id'].'|'.
			$products->fields['products_name'] .'|'.
			$products_description .'|'.
			$products_price. '|'.
			(!empty($products->fields['products_image']) ? HTTP_CATALOG_SERVER.DIR_WS_CATALOG_THUMBNAIL_IMAGES .$products->fields['products_image'] : '').'|' .
			$productURL. '|' .
			'99'.'|' .
			(($products_price >= VERSANDKOSTENFREI_AB)?'1':'0'). "\n";
			$products->MoveNext();
		}

		$fp = fopen(DIR_FS_DOCUMENT_ROOT.'export/'.$file, "w+");
		fputs($fp, $schema);
		fclose($fp);

		switch ($_POST['export']) {
			case 'yes':
				// send File to Browser
				$extension = substr($file, -3);
				$fp = fopen(DIR_FS_DOCUMENT_ROOT.'export/'.$file,"rb");
				$buffer = fread($fp, filesize(DIR_FS_DOCUMENT_ROOT.'export/'.$file));
				fclose($fp);
				header('Content-type: application/x-octet-stream');
				header('Content-disposition: attachment; filename='.$file);
				echo $buffer;
				exit;

			break;
		}
	}

	function display() {

		$customers_statuses_array = get_customers_statuses();

		$curr='';
	    $currencies = $this->db->db_query("SELECT code FROM ".TABLE_CURRENCIES);
	    while(!$currencies->EOF) {
	    	$curr.=draw_radio_field('currencies', $currencies_data->fields['code'],true).$currencies_data->fields['code'].'<br />';
	    	$currencies->MoveNext();
	    }

		return array('text' => EXPORT_STATUS_TYPE.'<br />'.
								EXPORT_STATUS.'<br />'.
								draw_pull_down_menu('status',$customers_statuses_array, '1').'<br />'.
								CURRENCY.'<br />'.
								CURRENCY_DESC.'<br />'.
								$curr.
								EXPORT_TYPE.'<br />'.
								EXPORT.'<br />'.
								draw_radio_field('export', 'no',false).EXPORT_NO.'<br />'.
								draw_radio_field('export', 'yes',true).EXPORT_YES.'<br />'.
								'<br />'.
								button(BUTTON_EXPORT) .
								button_link(BUTTON_CANCEL, href_link(FILENAME_MODULE_EXPORT, 'set='.$_GET['set'].'&module=preisroboter')));


	}

	function check() {
		if (!isset($this->_check)) {
			$check = $this->db->db_query("SELECT configuration_value from ".TABLE_CONFIGURATION." WHERE configuration_key = 'MODULE_PREISROBOTER_STATUS'");
			$this->_check = $check->_numOfRows;
		}
		return $this->_check;
	}

	function install() {
		$this->db->db_query("INSERT INTO ".TABLE_CONFIGURATION." (configuration_key, configuration_value, configuration_group_id, sort_order, set_function, date_added) VALUES ('MODULE_PREISROBOTER_FILE', 'preisroboter.txt', '6', '1', '', now())");
		$this->db->db_query("INSERT INTO ".TABLE_CONFIGURATION." (configuration_key, configuration_value, configuration_group_id, sort_order, set_function, date_added) VALUES ('MODULE_PREISROBOTER_STATUS', 'True', '6', '1', 'cfg_select_option(array(\'True\', \'False\'), ', now())");
	}

	function remove() {
		$this->db->db_query("DELETE FROM ".TABLE_CONFIGURATION." WHERE configuration_key in ('".implode("', '", $this->keys())."')");
	}

	function keys() {
		return array('MODULE_PREISROBOTER_STATUS','MODULE_PREISROBOTER_FILE');
	}
}
?>